package course.d1228;
/*

    A:进程：进程指正在运行的程序。确切的来说，当一个程序进入内存运行，即变成一个进程，进程是处于运行过程中的程序，并且具有一定独立功能。
    B:线程：线程是进程中的一个执行单元，负责当前进程中程序的执行，一个进程中至少有一个线程。
      一个进程中是可以有多个线程的，这个应用程序也可以称之为多线程程序。
    C:简而言之：一个程序运行后至少有一个进程，一个进程中可以包含多个线程
      什么是多线程呢？即就是一个程序中有多个线程在同时执行。

    实现线程：
    第一种实现方式：继承java.lang.Thread类
    构造方法：
    1.public Thread()分配新的 Thread 对象。
    2.public Thread(String name);
    成员方法：
    1.public final String getName()返回该线程的名称。
    2.public final void setName(String name)改变线程名称，使之与参数 name 相同。
    3.public void run()
    如果该线程是使用独立的 Runnable 运行对象构造的，则调用该 Runnable 对象的 run 方法；否则，该方法不执行任何操作并返回。
    4.public void start()使该线程开始执行；Java 虚拟机调用该线程的 run 方法。
    5.public static Thread currentThread()返回对当前正在执行的线程对象的引用。
    6.public final void setPriority(int newPriority)更改线程的优先级。

    Thread中的静态方法：
    public static final int MIN_PRIORITY线程可以具有的最低优先级。
    public static final int NORM_PRIORITY分配给线程的默认优先级。
    public static final int MAX_PRIORITY线程可以具有的最高优先级。

    格式：
    第一步：
    修饰符 Thread 的子类 extends Thread{
    public void run（）
    //设置线程任务
    }
    第二步：
    创建Thread子类对象，调用start（）方法，开启线程
 */
public class a1 {
    public static void main(String[] args) {
        System.out.println(Thread.MAX_PRIORITY);
        System.out.println(Thread.NORM_PRIORITY);
        System.out.println(Thread.MIN_PRIORITY);
        test s =  new test("A线程 ");
        test s1 = new test("B线程");
        s.setPriority(10);
        s.start();
        s1.setPriority(10);
        s1.start();
        Thread.currentThread().setPriority(1);
        for (int i = 0; i <1000 ; i++) {
            System.out.println(Thread.currentThread().getName()+i);
        }

    }
}
class test extends Thread{
    public test() {
    }

    public test(String s) {
        super(s);
    }

    @Override
    public void run() {
        for (int i = 0; i <1000 ; i++) {
            System.out.println(getName()+i);
        }
    }
}

